// P3954 write by cn_ryh